HTMLify
app.js
Views: 14 | Author: huxn-webdev
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | const textInput = document.querySelector(".text-input"); const worldCountElement = document.querySelector(".word-count"); const letterCountElement = document.querySelector(".letter-count"); const spaceCountElement = document.querySelector(".space-count"); const checks = [atLeastTwoCharacters, abscenceOfThreeConsecutiveCharacters]; function atLeastTwoCharacters(text) { const letters = text.match(/[a-z]/gi) || []; return letters.length >= 2; } function abscenceOfThreeConsecutiveCharacters(text) { for (const character of text) { const occurrences = Array.from(text).filter((v) => v == character).length; if (occurrences >= 3) { return false; } } return true; } textInput.addEventListener("input", () => { const splitted = textInput.value.trim().split(/[\s-]/); const letterCount = (textInput.value.match(/[a-z]/gi) || []).length; const spaceCount = (textInput.value.match(/\s+/g) || []).length; let wordCount = 0; outer: for (const text of splitted) { for (const check of checks) { if (!check(text)) { continue outer; } } wordCount++; } worldCountElement.textContent = wordCount; letterCountElement.textContent = letterCount; spaceCountElement.textContent = spaceCount; }); |